草庐IT

SQLite 事务(Transaction)

全部标签

java - 在 JUnit 测试中使用事务注释时数据未保存在数据库中

同事们,我一个多星期都解决不了一个Spring事务的问题。我已经创建了非常相似的帖子(Whydatawasn'tsavedwhenIuse@Transactionalannotation?),但无法解决其中的问题;当然,我考虑了给@FlorianSchaetz的建议。我恳请你帮助我。所以,我有测试类:@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(classes=AppConfig.class,loader=AnnotationConfigContextLoader.class)@Transactionalpub

java - Spring 事务不工作 + JAX WS + JDBC

我对这个问题有点生气。让我们检查是否有人实现了类似的东西。我有一个实现了8WS的Java8Web应用程序。其中一些WS,通过JDBCTemplate进行插入和更新(由于性能需要,Hibernate不是一个选择),如果执行崩溃并出现异常,我需要它们回滚。我在spring应用程序上下文文件(Tomcat的server.xml/context.xml中的jndi资源)中有以下数据源和事务管理器配置:另一方面,我有一个到数据库DBcontroller.class的唯一访问点,它有一个用于插入、删除和更新的通用方法:privateNamedParameterJdbcTemplatejdbcTem

java - XA/JTA 事务 : JMS message arrives before DB changes are visible

上下文是:生产者(JTA事务PT)正在向JMS队列发送消息并进行数据库更新;consumer(JTAtransactionCT)在同一个队列上监听并在收到消息时读取DB;应用服务器-WebLogic,数据库-Oracle。我观察到,有时CT(还?)无法看到PT的数据库更改,如果已收到相应的JMS消息(PTpromise了吗?)。似乎JTA不能保证这种一致性(这在JurgenHoller的演讲“TransactionChoicesforPerformance”中也得到了证实)。避免此类问题的最佳方法是什么(明显的除外-不使用JTA)?谢谢。 最佳答案

java - 服务层和 DAO 层中的 Spring 事务

在我的示例中,我有一个Hibernate实体和一个DAO。@Entity@Table(name="myEntity")publicclassMyEntity{@Id@GeneratedValue(strategy=GenerationType.IDENTITY)@Column(name="id")privatelongid;@Column(name="action")privateStringactionName;}...................@Repository("myDAO")@Transactional(propagation=Propagation.REQUIRED

java - EJB/JPA 事务边界

我在读EJBTransactionboundaryandTransactionboundary让我们专注于RequiresNewAttribute.这是链接中的修改图所以说method-B用RequiredNewattribute注释.所以根据理论当method-A电话method-B一个新的事务将开始,已经开始的事务将被暂停,当method-B返回新事务将被提交。现在考虑在S1部分我们使用entitymanager.persist()创建一个jpa实体现在我们将此实体传递给method-B其中设置了name实体的领域。现在当我们从method-B返回时怎么可能commitdb中的事务

java - 悲观锁与可序列化事务隔离级别

我有点理解实体锁定和事务隔离级别的用途,但无法区分悲观锁定和可序列化级别。据我了解,在这两种情况下,表都被锁定并且没有其他事务可以访问它,因此在这两种情况下,数据库都会采取防止并发修改的措施,这看起来没有区别。有人可以解释一下这里是否真的有区别吗? 最佳答案 (我不假设您使用的是ObjectDB。如果您编辑您的问题并包括您在JPA中使用的特定数据库,您可能会得到更好的答案。)我不喜欢乐观锁定和悲观锁定这两个术语。我认为乐观并发控制和悲观并发控制更准确。锁是处理并发控制问题最常用的方法,但不是唯一的方法。(Date在数据库系统简介中关

java - 从关闭文件方法抛出 IOException 时如何管理事务(包括文件 IO)

我最近开始使用Spring的数据源事务管理器。我现在有问题。我的事务包括对数据库表的更新和对文件的写操作。它工作正常,但我对文件I/O有一些疑问。正如您在下面看到的,我已经将我的bean的openFile和closeFile方法分别配置为init方法和destroy方法,这反过来又提供了这些方法,就像构造函数和析构函数一样被调用。如果文件没有正确关闭,一些记录可能没有成功写入output.txt文件,这意味着我也无法正确处理事务管理。但是,我想回滚那些尚未附加到平面文件的数据库更新。使用我的解决方案,似乎不可能将fileClose方法添加到事务中。有谁知道如何正确执行此所需操作?如有任

java - jOOQ 和 Spring 事务管理

我使用jOOQ3.8和SpringBoot1.4.1。我看到jOOQ使用一种机制来保证handlingoftransactions.如果我定义了一个注释为事务性的方法并且在执行两个插入时,它们是否在同一事务中执行,例如@Transactional(propagation=Propagation.MANDATORY)publicdoInsert(){DSL.using(configuration).insertInto(...);DSL.using(configuration).insertInto(...);}所有执行的insert在异常情况下会回滚吗?它们会在一笔交易中执行吗?或者,

java - 你如何重构@Transactional 方法来拆分非事务部分

我有一个作为独立Java应用程序的一部分运行的数据访问类。它目前正在工作,这意味着定义了一个事务管理器,但我想重构该类以减少事务的范围,但如果我这样做,我会得到org.hibernate.HibernateException:NoHibernateSessionboundtothread,andconfiguration不允许在此处创建非事务性,这意味着移动@Transactional以某种方式阻止了它被识别。我的原始版本的重构方法是私有(private)的,但我发现有人建议将其更改为公开的,因为在某些情况下注释不会被提取。publicclassDoStuff{@Transaction

java - 组织.hibernate.HibernateException : save is not valid without active transaction in my case

我有GenericService类,它封装了子类的crud方法:publicabstractclassGenericService,TextendsDomainObject,I>{publicIsave(Tt){returngetDao().save(t);}...........................}类AnswerService扩展GenericService。它AutowiringAnswerDao并将自己声明为@Service和@Transactionalspring组件。@Service@Transactional(propagation=Propagation.R